/**
* 用户协议显示功能处理
* by ShiChunhua 2013/03/14
*/
(function(){

	var mask, layer, downloadBT, closeBT, typeBT, pageTN, textBox, picBox, isPIC = true, tTween, pTween;
	var $ = function(id){
		return document.getElementById(id);
	}

	function show(){
		if($('agreement_mask')){
			mask = $('agreement_mask');
			layer = $('agreement_layer');
		}else{
			mask = document.createElement('div');
			mask.id = 'agreement_mask';
			layer = document.createElement('div');
			layer.id = 'agreement_layer';
			if(isNeedSong()){
				layer.className = 'song';
			}

			layer.innerHTML = getHTML();

			document.body.appendChild(mask);
			document.body.appendChild(layer);

			downloadBT = $('agreement_download');
			closeBT = $('agreement_close');
			typeBT = $('agreement_type');
			textBox = $('agreement_text');
			picBox = $('agreement_pic');

			addEvent();
		}

		mask.style.display = "";
		layer.style.display = "";

		pageTN = encodeHTML(getUrlParams('tn'));

		report('http://liulanqi.baidu.com/landingPage/report?agreement_show=1&t=' + (+ new Date));
	}

	function hide(){
		if(SchAIM){
			var Tween = SchAIM.Tween;
			var Easing = SchAIM.Easing;

			new Tween(mask, 'opacity', 40, 0, Easing.Linear, .4, function(){});
			new Tween(layer, 'opacity', 100, 0, Easing.Linear, .4, function(){});
			setTimeout(function(){
				doHide();
			}, 600);
		}else{
			doHide();
		}
	}

	function doHide(){
		mask.style.display = "none";
		layer.style.display = "none";
	}

	function addEvent(){
		downloadBT.onmouseover = function(){
			this.className = "downloadBTOver";
		}
		downloadBT.onmouseout = function(){
			this.className = "";
		}
		downloadBT.onmousedown = function(){
			this.className = "downloadBTDown";
		}
		downloadBT.onmouseup = function(){
			this.className = "downloadBTOver";
		}
		downloadBT.onclick = function(){
			downloadBrowser();
		}


		closeBT.onmouseover = function(){
			this.className = "closeBTOver";
		}
		closeBT.onmouseout = function(){
			this.className = "";
		}
		closeBT.onmousedown = function(){
			this.className = "closeBTDown";
		}
		closeBT.onmouseup = function(){
			this.className = "closeBTOver";
		}
		closeBT.onclick = function(){
			hide();
			report('http://liulanqi.baidu.com/landingPage/report?agreement_close=1&t=' + (+ new Date));
		}

		typeBT.onclick = function(){
			typeBT.innerHTML = isPIC ? '&nbsp;返&nbsp;&nbsp;&nbsp;&nbsp;回&nbsp;' : '用户协议';	
			var isShow = isPIC;
			if(SchAIM){
				var Tween = SchAIM.Tween;
				var Easing = SchAIM.Easing;

				if(tTween){
					tTween.stop();
				}
				if(pTween){
					pTween.stop();
				}

				tTween = new Tween(textBox, 'left', isPIC ? 724: 55, isPIC ? 55 : 724, Easing.Sine.easeIn, .4, function(){
				});
				pTween = new Tween(picBox, 'left', isPIC ? 55: -724, isPIC ? -724: 55, Easing.Sine.easeIn, .4, function(){
				});
			}else{
				textBox.style.left = isShow ? 55 : 724;
				picBox.style.left = isShow ? -724: 55;
			}
			isPIC = !isPIC;
		}
	}

	function getHTML(){
		var t= [];
		t[t.length] = '<div class="agreement_logo"></div><div id="agreement_title">欢迎使用 百度浏览器</div>';
		t[t.length] = '<div id="agreement_close"></div>';
		t[t.length] = '<div id="agreement_text">';
		t[t.length] = '	<b>百度浏览器软件安装及许可使用协议</b>';
		t[t.length] = '	<i>百度浏览器软件（以下简称“百度浏览器”）是由著名搜索引擎服务提供商百度公司免费提供的浏览器搜索软件。请用户在安装百度浏览器前仔细阅读本安装协议。如果用户选择安装百度浏览器，即表明用户接受本协议的全部条款。</i>';
		
		t[t.length] = '	<em>一.仅供个人非商业性使用</em>';
		t[t.length] = '	<i>百度公司授权用户非商业性免费使用百度浏览器，并为用户提供安装、卸载、提供相关数据服务。这意味着用户可以自主选择安装或卸载以及免费使用百度浏览器，可以免费使用及百度公司提供的相应数据服务，享受百度浏览器的升级服务。用户可以非商业性地复制和散发百度浏览器。</i>';
		t[t.length] = '	<i>但是如果用户要进行商业性的销售、复制、散发或其他商业活动，例如软件预装和捆绑，必须获得百度公司的事先书面授权和许可。</i>';
		t[t.length] = '	<i>百度浏览器是百度搜索服务的一部分，请用户在使用百度浏览器时，仔细阅读并遵守百度搜索引擎的权利声明（<a href="http://www.baidu.com/duty/right.html" target="_blank">www.baidu.com/duty/right.html</a>）和免责声明（<a href="http://www.baidu.com/duty/" target="_blank">www.baidu.com/duty/</a>）。同时，用户应确保不使用任何方式损害和妨碍百度搜索服务，不得从事以下活动，也不得授权或教唆任何第三方从事以下活动：(i) 通过采用任何自动方式、欺诈方式、不真实的方式或欺骗性方式，直接或间接地对任何搜索结果产生查询次数、展示次数或点击次数，包括但不限于人为反复点击、使用漫游器或其他自动化查询工具和/或计算机生成搜索请求和/或欺诈性地使用其他搜索引擎优化服务和/或软件；(ii) 采用任何方式编辑、修改或过滤任何百度提供的搜索结果中所包含的信息或更改其顺序，或者删除、隐藏任何搜索结果或者将其最小化；(iii) 对百度所提供的搜索结果的任一网页（简称“搜索结果页”）进行加框链接；(iv) 将任一搜索结果页重定向到别处、搜索结果页版本不同于直接访问相应的搜索结果页所看到的网页、在包含搜索框的网页和搜索结果页之间散置任何内容，或以其他方式提供不同于从包含搜索框的网页到搜索结果页的直接链接的任何内容；(v)对由任一搜索结果获取的信息或信息的任一部分、副本或衍生信息，采用“抓取”、“spider”、索引或任何其他非暂时性方式加以存储或缓存。</i>';
		t[t.length] = '	<i>百度公司承诺会为百度浏览器的进一步开发和扩展做相应的工作，并为百度浏览器提供产品服务支持，如果用户对百度浏览器有任何意见，或有如何改进的建议，请及时通过Email与我们联系反馈发表您的问题或建议。</i>';
		
		t[t.length] = '	<em>二.知识产权保护</em>';
		t[t.length] = '	<i>百度浏览器受国际版权公约、中华人民共和国著作权法及其他知识产权方面的法律法规的保护，其所有知识产权归百度公司所有。用户需承认百度公司拥有对百度浏览器的所有权利，包括但不限于所有知识产权。“知识产权”包括在专利法、版权法、商标法、反不正当竞争法中等法律规定的任何和所有权利、任何和所有其它所有权以及其中的任何和所有应用、更新、扩展和恢复。</i>';
		t[t.length] = '	<i>用户不得修改、改编、翻译百度浏览器，或者创作百度浏览器的派生作品，不得通过反向工程（reverse engineer），反编译（decompile）、反汇编（disassemble）或其他类似行为获得百度浏览器源代码，否则由此引起的一切法律后果由用户负责，百度公司将依法追究违约方的法律责任。</i>';
		t[t.length] = '	<i>用户不得恶意修改、复制、传播与百度浏览器相关的材料。如果用户复制和修改传播这些材料，因此而造成对其他人的损害，或者造成对百度公司形象损害，要承担相应的法律责任。用户不得删除、掩盖或更改百度公司的版权声明、商标或其它权利声明。</i>';
		

		t[t.length] = '	<em>三.无担保声明及特别说明</em>';
		t[t.length] = '	<i>百度公司保证百度浏览器不含有任何旨在破坏用户计算机数据的病毒及其它恶意代码。百度浏览器经过详细的测试，但不能保证与所有的软硬件、系统完全兼容。如果出现不兼容的情况，用户可及时通过Email将情况报告百度公司，以获得技术支持。如果无法解决兼容性问题，用户可以直接卸载或使用用户计算机的控制面板中的添加/删除程序功能删除百度浏览器。</i>';
		t[t.length] = '	<i>由于百度浏览器可以通过网络等途径下载、传播，对于从非百度公司指定站点下载的百度浏览器以及从非百度公司发行的介质上获得的百度浏览器，公司无法保证该软件是否感染计算机病毒、是否隐藏有伪装的特洛伊木马程序等黑客软件，也不承担由此引起的直接和间接损害责任。</i>';
		t[t.length] = '	<i>用户理解并同意自主选择下载和使用百度浏览器，百度公司不担保百度浏览器的适销性、针对特定用途的适用性以及任何其他性能。</i>';
		t[t.length] = '	<i>在互联网行业通行的范围内，用户信息及用户行为可能会为百度公司正常记录和使用。但除非为了遵守法律法规的规定或遵照相关政府主管部门的要求，百度公司不会将涉及用户的个人信息提供给任何第三方。</i>';
		


		t[t.length] = '	<em>四.义务和责任限制及管辖约定</em>';
		t[t.length] = '	<i>用户可以向百度公司提出咨询和获得百度浏览器相关的合理技术支持，百度公司此项义务不应超过百度公司的合理承受限度。用户使用百度浏览器不得有违犯法律，危害网络安全或损害第三方合法权益之行为，否则由此产生的后果用户自负。百度浏览器安装时生成一个唯一性标识，有助于用户本地机与 Baidu.com服务器进行通讯，检查软件的更新信息，如错误修复程序、补丁程序、增强功能以及更新版本。百度公司承诺不会因此而侵害用户的隐私。</i>';
		t[t.length] = '	<i>鉴于百度浏览器是免费软件，百度公司不承担用户在使用软件时对用户造成的任何损失的赔偿责任。百度公司保留随时修改本安装协议的权利并无需逐一通知用户，用户对百度公司修改后的协议如有异议，可选择自行删除百度浏览器，由此给用户造成的任何损失百度公司均不承担责任。用户继续使用百度浏览器的行为即表明用户完全同意百度公司对本安装协议的修改。</i>';
		t[t.length] = '	<i>用户同意因使用百度浏览器所引发的一切争议，提交百度公司所在地人民法院（即北京市海淀区人民法院或遵照级别管辖规定时为北京市海淀区人民法院的上级法院）诉讼解决。</i>';
		t[t.length] = '	<i>对于任何用户因使用或误用百度浏览器而造成的损失，百度公司概不负责。对于直接、间接、偶发、继发、特殊、惩戒性和惩罚性损害的补偿，无论此类主张根据担保条款、契约、民事侵权行为（包括过失侵权）还是其它法规（即使百度公司已被告知上述损失的可能性），上述责任限制均适用。无论损失因使用或误用百度浏览器，无法使用百度浏览器，还是因百度浏览器的中断、暂停或终止，上述责任限制均适用。尽管未达到有限赔偿和在法律允许的最大范围内的基本意图，上述限制仍适用。</i>';
		t[t.length] = '	<i>此版本百度浏览器为百度公司所有，且百度公司享有对本协议的最终一切解释权利。 </i>';
		

		t[t.length] = '</div>';

		t[t.length] = '<div id="agreement_pic">';
		t[t.length] = '</div>';

		t[t.length] = '<div id="agreement_download">接受并安装</div>';
		t[t.length] = '<div id="agreement_type">用户协议</div>';
		t[t.length] = '<iframe id="agreement_download_frame" name="agreement_download_frame"></iframe>';

		return t.join('');
	}

	// 下载判断
	function downloadBrowser(){
		var ifm = $('agreement_download_frame');
		var downloadPath = '', dpath = '', ua = navigator.userAgent, isMatch = false, type = 0;
		var tn = encodeHTML(getUrlParams('tn') || 'lptest01');
		
		// by shichunhua 调整一个特殊TN判断 恶心...  2013/07/19
		if(tn == 'tiebatest03'){
			window.open('http://go.client.baidu.com/?linkid=361');
			doReport('http://liulanqi.baidu.com/browserlog?src=landingPage&from=' + encodeURIComponent(document.referrer) + '&tn=' + tn + '&action=&rnd='+(+new Date()));
			doReport('http://xapp.baidu.com/browserlog?src=landingPage&from=' + encodeURIComponent(document.referrer) + '&tn=' + tn + '&action=&rnd='+(+new Date()));
			return;
		}


		dpath = 'http://dl.client.baidu.com/union/getbdbrowser.php?tn=' + tn + '.exe' + '&rnd=' + (+ new Date) + '&webinstaller=5';
		if(/msie/i.test(ua)){
			if(HasRuntimeVersion2()){
				downloadPath = 'http://liulanqi.baidu.com/webinstall/framework2/baidubrowserolinst.application';
				isMatch = true;
				type = 2;
			}else if(HasRuntimeVersion4()){
				downloadPath = 'http://liulanqi.baidu.com/webinstall/framework4/baidubrowserolinst.application';
				isMatch = true;
				type = 4;
			}else if(IsMSIE9()){
				downloadPath = 'http://liulanqi.baidu.com/webinstall/framework2/baidubrowserolinst.application';
				isMatch = true;
				type = 2;
			}else{
				downloadPath = 'http://dl.client.baidu.com/union/getbdwebinstaller.php';
				dpath = downloadPath + '?tn=' + tn + '&rnd=' + (+ new Date) + '&webinstaller=5';
			}
			downloadPath = downloadPath + '?tn=' + tn + '&rnd=' + (+ new Date) + '&webinstaller=5';
		}else{
			downloadPath = dpath;
		}

		hide();
		
		if(!isMatch){
			ifm.src = downloadPath;
		}else{
			window.open(downloadPath);
			setTimeout(function(){
				window.location.href = 'http://liulanqi.baidu.com/landingPage/after/index.html?tn=' + encodeURIComponent(tn) + '&type=' + type;
			}, 200);
		}


		report('http://liulanqi.baidu.com/landingPage/report?agreement_download=1&t=' + (+ new Date) + '&ua=' + encodeURIComponent(navigator.userAgent).substring(0, 800));
	}

	function HasRuntimeVersion2(){
		var a = navigator.userAgent.match(/\.NET CLR 2\.[0-9.]+/g);	 
		if (a != null)
			return true;
		return false;
	}
	function IsMSIE9() {
		var a = navigator.userAgent.match(/(MSIE 9\.)|(MSIE 10\.)/g);
		if(a != null)
			return true;
		return false;
	}
	function HasRuntimeVersion4(){
		var a = navigator.userAgent.match(/\.NET4.0C/g);
		var b = navigator.userAgent.match(/\.NET4.0E/g); 
		if (a != null && b != null)
			return true;
		return false;
	}
	function GetVersion(v){
		var a = v.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
		return a.slice(1);
	}
	function CompareVersions(v1, v2) {
		for (i = 0; i < v1.length; ++i){
			var n1 = new Number(v1[i]);
			var n2 = new Number(v2[i]);
			if (n1 < n2)
				return -1;
			if (n1 > n2)
				return 1;
		}
		return 0;
	}

	function isNeedSong() {
		var needSong = false;
		var nt = navigator.userAgent.match(/Windows NT \d\.\d/gi);
		if(nt) {
			var vm = nt[0].match(/\d\.\d/);
			if(vm) {
				var v = Number(vm[0]);
				if(v <= 6) {
					needSong = true;
				}
			}
		}
		return needSong;
	}


	// 统计
	function report(url){
		(new Image).src = url + '&tn=' + pageTN;
	}



	function getUrlParams(name){
		var reg = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)");
		var match = location.href.match(reg);
		return (!match ? "" : match[2]);
	}
	function encodeHTML(str) {
		return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g, "&quot;").replace(/'/g, "&#39;");
	}

	if(encodeHTML(getUrlParams('agm')) == '1'){
		show();
	}
})();